package com.rzjm.exercise.module.domain.dto;

import com.rzjm.exercise.common.utils.MathUtil;
import lombok.Data;

import java.io.Serializable;

/**
 *  圆锥
 * @创建者：zhouwei
 * @创建时间：2023/2/10
 * @描述：
 */
@Data
public class Cone implements Serializable {

    /**
     *  半径
     */
    double rad;
    /**
     *  高度
     */
    double height;

    /**
     *  长半轴
     */
    double longHalf;

    /**
     *  短半轴
     */
    double shortHalf;

    /**
     *  长边
     */
    double rectLength;

    /**
     *  宽边
     */
    double rectWidth;

    /**
     * 是否是椭圆  0 - 正圆 1 - 椭圆 2 - 四方形
     */
    int isEllipse;

    final double PI = 3.1415926;


    //计算底面积
    public double area(){
        System.out.println("底面积 = " + Math.PI * rad * rad);
        if(isEllipse == 0) {// 正圆
            return MathUtil.getDoubleUpThree(Math.PI * rad * rad);
        }else if(isEllipse == 1) {
            return MathUtil.getDoubleUpThree(Math.PI * rad * rad);
        }else{//2 - 四方形
            return MathUtil.getDoubleUpThree(rectLength * rectWidth);
        }
    }
    //计算体积
    public double volume(){
        if(isEllipse == 0) {// 正圆
            return MathUtil.getDoubleUpThree((Math.PI * rad * rad) * height / 3);
        }
        else if(isEllipse == 1)  {//  圆锥
            //底面为圆的圆锥体体积V=(1/3)π a b * h = (1/3) πR^2*h.
            return MathUtil.getDoubleUpThree((Math.PI * longHalf * shortHalf) * height / 3);
        }else{
//            2 - 四角形
            return MathUtil.getDoubleUpThree((rectLength * rectWidth) * height / 3);

        }
    }
}
